import tkinter as tk
from tkinter import messagebox
from config_manager import ConfigManager
from login_manager import LoginManager
from gui_app import BilibiliDanmuApp


def main():
    # 初始化配置管理器（单例）
    config_manager = ConfigManager()

    # 初始化登录管理器（单例）
    login_manager = LoginManager()

    # 创建主窗口
    root = tk.Tk()
    root.title("B站弹幕工具 | 盲盒盈亏推送")

    # 从配置加载窗口大小
    window_geometry = config_manager.gui_settings.get("window_geometry", "900x700")
    root.geometry(window_geometry)

    # 确保窗口可调整大小
    root.resizable(True, True)

    # 创建应用实例
    app = BilibiliDanmuApp(root, config_manager, login_manager)

    # 启动主事件循环
    try:
        root.mainloop()
    except Exception as e:
        messagebox.showerror("程序异常", f"应用发生错误：{str(e)}")


if __name__ == "__main__":
    main()
